Networks have long been commonly used to communicate information of all forms between various computer systems, such as program code and data, including audio, graphic and video or graphic information. As a result, computer systems and communications systems have evolved together, each influencing the other and each evolving to address methods and problems presented by the other.
For example, telephone networks, long being in existence as a widely available means of communicating information from one point to another when computers were first developed, were one of the first forms of network used for communication between computer systems. The inherent characteristics of the original telephone networks thereby, as a consequence, defined the original computer communication methods and technologies. As is well known and understood, telephone networks allow communication of audio data, or more broadly audio signals, between two or more users by establishing a dedicated communication circuit or “channel” between the users through one or more central switching systems. As is also well known and understood, information in a computer system is structured as units or packets of multiple bits or bytes of predetermined size and, as a consequence, various methods and signal formats were developed to communicate digital information packets through the telephone networks.
The essential nature of the original telephone networks is such that a channel, once established, is dedicated exclusively to a single information exchange, whether the information is a conversation between user's or digital information being communicated between one computer and another. Dedicated channels are advantageous in that the entire bandwidth of the channel is available for a given information exchange and in that any transmission delays from an information source to an information recipient are purely a function of the direct transmission speed through the channel. Since dedicated channel transmission speed does not significantly vary over time or with the information transmission load, dedicated channels are capable of providing “isochronous” transmission. A significant disadvantage of dedicated channels, however, is that dedicated channels preempt significant bandwidth of the communications network. That is, the complete bandwidth of a channel is and remains available and dedicated to a given link between computer systems, even when the information exchange does not require the full bandwidth of the channel and even when no information is being transmitted.
For the above reasons, dedicated channels have been inadequate to meet the needs of intercomputer communication as information exchange between computer systems has become more common and widespread. As a consequence, telephone systems and computer communication methods have evolved to meet to the increased demand for information exchange between computers, and have generally evolved in conjunction to meet common needs, in particular the transmission of data, and to make advantageous use of jointly developing technologies.
For example, various forms of networks have been developed that are dedicated to or specifically adapted to communication between computers. Networks specifically oriented to intercomputer communications typically provide individual computers shared access to a common communication backbone having relatively broad bandwidth, such as fiber optic cables or coaxial or twisted pair cable. The individual networked computers, commonly referred to as “nodes”, are typically granted access to the complete bandwidth of the backbone for the transmission of each information packet for a period, and when a transmitting computer completes transmission of a packet the backbone is made immediately available for the other computers or nodes connected to the network. Each computer thereby has access to the full bandwidth of the network, but only during the actual transmission of a packet, so that many computers may efficiently share the common “backbone”. A typical example of such a computer network is a personal computer (“PC”) network as PCs are used for a wide range of applications requiring the PCs to communicate with each other over a computer network. Typical computer networks connecting PCs, as well as other computers, nodes and related devices and systems, include local area networks (“LANs”) interconnecting PCs located in relatively close proximity and wide area networks (“WANs”), which are typically comprised of a network of separate LANS and provide communications over wider areas. The “Web”, for example, is a very extensive WAN interconnecting LANs as well as PCs, larger computers, nodes and related devices.
Telephone networks in various forms, however, remain the most common method for interconnection and communication between computers. For example, telephone networks are frequently employed as a WANs linking individual computers or LANs and the World Wide Web is primarily based upon telephone networks. Many telephone systems are presently implemented with broadband channels, such as fiber optic lines, to provide increased numbers of channels or increased channel bandwidths for the transmission of computer data and digitized voice signals. As a consequence, there have been extensive efforts to establish interface standards, methods and technologies for the faster and more efficient transmission of digital information packets through the various implementations of telephone networks. For example, many telephone systems are now implemented using computer network technologies, such as broadband backbones, and many telephone networks also digitize audio information, that is, voice signals, into digital data packets analogous to computer data packets. The adaptation of computer network technologies to telephone networks thereby allows voice information to be communicated in a manner analogous to computer information packets by concurrent communication of multiple channels on a single line and the routing of digitized voice packets through multiple paths. The adaptation of computer originated technology and methods to telephone systems and voice communications thereby allow telephone networks to carry both voice information and computer information with equal facility. The consequences of such developments in telephone systems may be seen, for example, in the implementation and rapid expansion of Work Wide Web communications between computers, which is primarily implemented through the telephone networks.
The development of the hardware technologies of telephone networks and of computer specific networks has been paralleled by the development of standards and protocols for the more efficient transmission of data packets through computer networks. In this regard, the heart of any computer network, whether based upon a telephone network or implemented as a network dedicated to or specifically adapted to communication between computers, is a communication protocol wherein a communications protocol is a set of conventions or rules that govern the transfer of data between computer devices. The simplest protocols define only a hardware configuration, while more complex protocols define timing, data formats, error detection and correction techniques and software structures. Virtually all forms of computer networks commonly employ multiple layers of protocols wherein each layer of the protocols defines and controls a corresponding level of operations in the communication between computers through the network. For example, the physical protocol layer typically define and control the lowest level of operations and will commonly include a low-level physical or device layer protocol that assures the transmission and reception of a data stream between two devices, while a higher level data link protocol layer defines and manages the construction and transmission of data packets. Network and transport layer protocols, such as the Transmission Control Protocol/Internet Protocol (“TCP/IP”), operate a higher levels than the physical layer protocols, and in turn govern the transmission of data through the network itself, thereby ensuring the reliable end-to end delivery of the data packets defined at the lower levels.
There are presently a range of industry standard protocols for the efficient transmission of data through both computer specific networks and telephone networks, most of which are based upon the packet transmission of data. Examples of existing standards and protocols for the transmission of computer data through networks, including telephone networks and computer specific networks, include the Integrated Services Digital Network (“ISDN”), which standardizes connection interfaces, transmission protocols and services to create a unified digital circuit-switching network. A further example is Broadband ISDN (“BISDN”) which, unlike ISDN which is a digital network standard, uses packet relay, or Asynchronous Transfer Mode (“ATM”), as a transmission standard, particularly for transmission over broadband “backbones”. ATM is primarily a connection-oriented technique that can transport both connection and connectionless-oriented services at either a constant bit rate or a variable bit rate. ATM provides bandwidth on demand and handles all traffic types through fast-packet switching techniques that reduce the processing of protocols and uses statistical multiplexing to control transmission through the network.
It has long been commonly recognized and understood, however, that a primary limitation upon the communication of data through networks is that the bandwidth resources available in any network are limited. Other, related problems include network latency and jitter, which are delays in end-to-end data transmissions arising from a variety of causes. The “latency” of a network includes the inherent delay times through the elements of the network, such as through the cables or lines, the switching routers and the communications processes or protocols being executed at each end of the connection. Although the latency of a network tends to be relatively constant for a given connection, latency may vary from connection to connection, depending upon the particular route taken through a network by a given connection and upon the traffic load of the network or in the route defined for the connection. The latency of a network effects the overall efficiency and effective bandwidth or capacity of a network by imposing a practical limit on the rate at which data, and in particular packet data, can be communicated through the network, particularly since many protocols require an acknowledgment of each packet before a next packet is transmitted. “Jitter”, in turn, may be defined as change in network latency as a function of time. Jitter is typically unpredictable and may arise from a number of causes, but most frequently results from variations in the traffic load along the route taken by a connection through a network. As such, the “jitter” of a network connection may vary significantly from packet to packet and even more so in systems that allow independent routing of individual packets. Jitter also effects the overall efficiency and effective bandwidth or capacity of a network by imposing a practical limit on the rate at which data can be communicated through the network, and has particularly adverse effects in asynchronous networks, such as many computer networks and networks employing, for example, the ATM protocol.
It has long been understood that efficient bandwidth and traffic management is essential to obtain full advantage of the bandwidth and capacity of a network and significant efforts have been made in designing traffic flow and congestion control processes, bandwidth management mechanisms and routing algorithms to manage available network bandwidth and capacity. The goal of such developments has been a network that is able to transmit a useful level of traffic that is directly proportional to the traffic offered to the network up to the maximum transmission capacity of the network, and thereafter to continue to operate at the maximum network capacity regardless of the imposed traffic load. The actual performance achieved in networks falls far short of these goals, however, for reasons pertaining to practical constraints in implementing networks and arising from limitations inherent in the methods presently used to manage networks.
For example, the simplest method for obtaining satisfactory performance in a network is to oversize the equipment, that is, the number and capacity of the channels and the traffic capacity of the routing switches, so that in all anticipated operating conditions the network will be operating in a zone that is well distant from congested levels or zones of operation. This method, however, is generally unsatisfactory because of cost and because the traffic demands on networks historically increases rapidly over time to exceed the anticipated maximum loads on the networks, thus resulting in eventual congestion regardless of the initial capacity of a network.
The preferred methods for obtaining satisfactory performance in networks have thereby focused on traffic management methods for managing and controlling the traffic load and flow in a network, mechanisms for allocating network bandwidth and improvements in protocols for the efficient transmission of data. Traffic flow and control measures, for example, typically include flow control for regulating the packet transmission rate of a transmitting system to a rate compatible with the rate the receiving system can absorb. Load regulation mechanisms, in turn, globally limit the number of packets present at any time in the network to thereby avoid overloading the capacity of the channels and routing switches while load balancing mechanisms distribute traffic over the links of the network to avoid local congestion.
A traffic management system, bandwidth allocation mechanism or communications protocol, however, must be structured to meet requirements arising from the characteristics of network traffic which are difficult to accommodate. For example, network traffic is typically not well behaved, that is, the traffic load may vary widely and at unpredictable times or under unpredictable circumstances, and often departs substantially from the initially assumed traffic parameters. If such a departure persists, the traffic management system must, for example, assign one or more new connection bandwidths to one or more connections to accommodate the new traffic parameters, which in turn may affect yet other connections and require adaptations or modifications of those connections, and so on. Determining the appropriate responses of the traffic management system to radical changes in traffic behavior in turn presents yet further problems. Typical problems are those of obtaining and filtering traffic load measurements to separate transient changes of traffic behavior from longer term changes and determining ranges within which the initially assumed traffic parameters can be maintained and outside of which new connection bandwidths must be requested. For example, a bandwidth that is too large for the actual traffic is wasteful of connection resources while a bandwidth that is too small results in excessive packet loss. Continuous adjustments of channel bandwidths to meet transient conditions, however, absorb excessive network resources in continuous adaptation to conditions that may have changed by the time the adaptations take effect.
Another source of network problems arises when the communications protocols implemented in a given network for efficient data transmission conflict with the operation of the network traffic management system. This problem arises, for example, from conflicting goals when the traffic manager operates to optimize the overall performance of the network while the protocols executed in the network users attempt to optimize the performance of each user of the network individually. For example, it has been described above that TCP/IP is a very commonly used protocol. TCP/IP, however, employs a “go back N method” for dealing with errors and flow control problems over a network. If there is a transmission error, a packet loss, excessive latency in the delivery of a packet, delivery of a packet out of sequence or an overflow of a receiver buffer, the protocol retransmits N preceding packets. The retransmission of packets by TCP/IP in response to problems that may arise from traffic congestion may thereby significantly increase the traffic load congestion that the network management system is attempting to address. This problem may become particularly severe if the TCP/IP protocols of several users are retransmitting packets in response to data communications problems arising from traffic congestion rather than from circumstances in the individual transmitters or recipients.
To illustrate the above by considering various mechanisms of the protocols and network management mechanisms of the prior art in greater detail, many protocols such as TCP/IP implement packet priority mechanisms to prevent saturation of a network. A “leaky bucket” algorithm, for example, limits the number of low priority packets that can be transmitted in a fixed period of time when the packets digress from an original rate of transmission, so that high priority traffic is thereby transmitted with little or no delay. A leaky bucket or similar packet priority mechanism will thereby maintain packet transmission at acceptable levels if the traffic is not unreasonable and if the traffic remains within a reasonable range of the initial transmission parameters. Network traffic loads, however, are often unreasonable and often depart substantially from the initial transmission parameters, thereby requiring other mechanisms to accommodate changes in the traffic loads.
For example, if a departure from the initial traffic parameters in a given connection persists for a significant length of time, a traffic control system will typically assign a new connection bandwidth to the connection to accommodate the new traffic parameters. This mechanism, however, must adapt both to radical changes in traffic behavior and the problem of short-lived changes in traffic behavior as opposed to long term changes and must determine which connection bandwidths would be suitable to traffic behavior at a given time. Too large a bandwidth would waste connection resources and a too small a bandwidth would result in packet loss.
The problem of determining appropriate connection bandwidths may be illustrated by consideration of the problems of latency, jitter and “burst” type data. That is, and for example, if packets are being transmitted through a connection with no losses and the predefined maximum window size is appropriate, wherein window size may be considered as connection bandwidth and the time interval assigned for transmission to a given system, the steady flow of transmission data will bring the TCP protocol to a steady state. In this steady state, one new packet of data is placed on the network for transmission each time an acknowledgment of receipt of the previous packet is received from the receiving end node of the connection by the sending end node of the connection. The time lapse between each packet transmission is thereby determined by the rate at which acknowledgments arrive at the sending end node. If network bandwidth and latency remain consistent, packets flow freely and few packets are lost to buffer overflows, such as in routers. However, and as discussed above, many networks are subject to long term changes in connection bandwidth, as when bandwidth is reassigned due to changing traffic conditions, and long and short term variations in latency, including jitter due, for example, to short term traffic conditions. Variations in bandwidth requirements may also arise from the nature of the data being transmitted. For example, video and voice data typically appears as data “clusters” interspersed with large gaps. As a consequence, the voice or video data clusters are typically transmitted in “bursts” and as a result a protocol such as TCP/IP does not make efficient use of the bandwidth available between bursts.
A traffic control system typically adapts to changes in traffic parameters by defining the regions of the network where bandwidth allocations do and do not require adjustment to meet traffic needs. Bandwidth allocations are adjusted upward if measurements indicate the anticipated maximum acceptable packet loss will be exceeded or that traffic on the connection will interfere with other connections sharing the transmission medium. Bandwidth requirement is adjusted downward if the quality of service will be acceptable for all users.
To determine the required bandwidth adaptations, a traffic control system will take measurements of the mean burst duration and mean bit rates and will filter the measurements to insure that a statistically reliable number of raw measurements have been obtained. The minimum required number of raw measurements and the mean bit rate of the traffic will determine the time required to collect the raw measurements. This measurement time, in turn, may used to analyze statistics of the incoming data stream to, for example, a leaky bucket mechanism and to determine the effect of the leaky bucket on incoming traffic. This effect may then be used to predict how the leaky bucket is monitoring the transmission, and to determine packet loss probability.
When traffic parameters fall outside of the acceptable bandwidth adaptation range, a traffic control system will request a new connection with a different bandwidth. Typically, however, the adaptation mechanism requires a longer time to adapt to upward changes in the traffic parameters, that is, to increases in traffic load or speed, due to the time lag in the measurement and filtration process. This, in turn, often results in overcompensation in upward or downward network bandwidth adjustments and either inefficient use of network resources or degradation of data transmission or both. This problem further compounded in that it is common to have a single processor monitoring and performing traffic control functions for several connections, so that the bandwidth adaptation functions are limited by inadequate processing capabilities.
Many protocols and network management systems also perform “windowing” of network resources, that is, the allocation of transmission periods and bandwidths to systems for communication through the network and the adjustment of the windows as traffic needs change. The performance of a TCP/IP monitored transmission, for example, depends heavily on the value is determined for the threshold for window growth, that is, the speed with which a window may be increased, and the maximum window size. If a window size is too small or the threshold is too low, the TCP/IP will not be able to transfer sufficient data for optimum performance and, if the prescribed window size is too large, TCP/IP may lose packets or network congestion may ensue, or both.
For example, under some conditions a current window size may grow to a maximum window size that may exceed the window size optimal for the link and such an oversize window may allow TCP/IP to transmit excessive numbers of packets. The superfluous packets may exceed the optimal number of packets for the available bandwidth and buffer space available at nodes between the sending and receiving end nodes of the connection, thereby overloading the system.
Yet other problems occurs in the handling of packet dropping under the TCP/IP protocol when excessive packets are transmitted. For example, if the slowest intermediate node between a sending end node and a receiving node of a network connection has insufficient buffer space to hold the surplus packets, the packets will be dropped. The dropping of packets will result in TCP/IP initiating a time-out and the retransmission of packets. Depending on the version of TCP/IP, the protocol will either reduce the window size by half or restart with the original window size for each dropped packet. Under these conditions, this response by TCP/IP will initiate a repeated cycle wherein TCP/IP will increase the window size, surplus packets will be transmitted, a packet will be dripped due to insufficient buffer capacity, and the window size will be reduced, and so on, which will result in a severe reduction in packet throughput.
In the circumstance wherein the slowest intermediate node does have enough buffer space to hold extra packets, packets will not be dropped initially. However, subsequent packets will be continuously transmitted by other nodes on the network and the rate of transfer of packets will become progressively slower through the nearly saturated buffer. At some point the network will become congested and the buffer will eventually no longer be able to store additional packets. Packets will then be dropped, and the above described cycle will begin.
Yet further problems of the methods of the prior art arise in that the performance of protocols using windowing, such as TCP/IP, depend significantly upon altering window size. In TCP/IP, for example, the window size is set at one when there is no data being sent across the network and when packets begin to flow on the network TCP/IP starts increasing the window size towards the predefined maximum. If the current window size is near or at maximum when new data is transmitted, the packets will be placed on the network in rapid succession until all the packets are sent, whereupon the window size will be reset to one as there are no further packets to be transmitted. This process, however, may result in a number of undesired consequences. For example, the rapid transmission of packets when the window size is near or at maximum comprises a “burst” of packets, as described above, that may be a cause for network congestion. As a further consequence, due to the network congestion resulting from such a burst of packets, the packets transmitted at the end of the burst may be dropped because of network congestion and/or buffer overflow. In addition, and when data is transmitted intermittently, as in successive, separated blocks, the window size may be reset to one at the end of each block of transmitted data. The window size will thereby start at one for each new block of data, so that TCP/IP is prevented from fully utilizing the available bandwidth
Problems may also arise from the operation of routers, which transfer information from network to network and perform conversion operations at the physical and network layer of protocols in doing so. In particular, the physical Layer 28 typically includes a media access layer (MAC) that specifies the maximum transmission unit (MTU) that can be transmitted over the physical medium wherein the MTU is defined and described as a maximum number of transmission units a network segment is capable of transmitting. An MTU is thereby essentially the maximum size of data block or data unit, sometimes referred to as a segment, that can be conveyed through the physical medium of the network and will depend upon the physical characteristics of the network, the router and the protocol. Because of MTU limitations, therefore, a router is often required to convert a packet into small units, generally referred to as “fragments”, in order to transfer the packet through a network.
In particular, MTU complications may arise during the transmission of a packet, often referred to as a datagram, through a connectionless network. In a connectionless network, no connection information is assigned to a packet as it travels between the nodes of the network and the packet instead contains only information identifying the end node destination of the packet. As such, and as an intended consequence, each packet will typically and often travel over a different path of one or more networks or routes through one or more networks to arrive at the destination node. As the datagram travels from the sending node to the destination node, it is typically fragmented by various amounts to conform to the MTU of each intermediary network. Routers in connectionless networks, such as the Internet, thereby require increased processing power to fragment large segments into smaller segments, thereby increasing transmission overhead and processing time during the transmission of a datagram. In addition, the destination host is required to expend an increased amount of processing resources and time to buffer a potentially large cache of segments and to reassemble the segments into the original message. These requirements increase the latency of the network, and jitter due to the different transmission times of the fragments, while the increased the amount of packet header information that must be transmitted because of fragmentation effectively reduces the effective network bandwidth.
If a datagram travels over a route with an inherently large MTU, it may not be necessary to fragment the packet. However, when fragmenting is required, it may be difficult to control on a connectionless network because each segment may travel over a different route. Also, if a route of a network fails or is incorrectly configured, the network properties may change so that segments may be sent over a route with a smaller MTU, thereby requiring more extensive fragmentation. As a consequence, the routing of the segments or fragments of a datagram may become extremely complex, and it is difficult for a transmitting host to select an appropriate datagram size that will minimize fragmentation. As a result, current techniques for selecting datagram sizes to reduce overall fragmentation while maintaining an optimum bandwidth have not been successful.
In yet other methods of the prior art for network management, the transport Layers 28 of certain protocols may use a “packet metering” protocol instead of a window sizing protocol. As described, window sizing allows one new packet of data to be placed on the network for transmission each time an acknowledgment of the receipt of a preceding packet is received by the sending end node. In contrast, packet metering limits the rate at which packets are placed on the network by instructing the sending end node to send the packets at a selected rate if the network is not congested. In packet metering systems the packet metering rate is set during the initial system configuration and remains fixed thereafter while in other systems the metering rate is adapted to changing network conditions.
Window sizing and packet metering have relative advantages and disadvantages. For example, when the packet-metering rate is set appropriately, packet metering avoids the bursts resulting in window sizing systems from intermittent data transmission. Also, optimal packet metering results in the transmission of data at a rate that does not cause congestion or packet dropping while making optimum use of the available bandwidth.
In comparison, window sizing avoids congestion but uses bandwidth inefficiently by reducing the window size after each block of data that is transmitted. An advantage of window sizing as opposed to packet metering, however, is that window sizing tends to provide better limits on the number of additional packets that are transmitted after packets are dropped by halting transmission of packets immediately if an expected acknowledgment is not received. In contrast, packet metering depends on packet rate measurements that are taken after two or more packets are sent, so that the mechanism responds more slowly to missing acknowledgments. In one packet metering system, for example, the rate at which packets arrive at the receiving end node and the rate at which they are removed from the receiving end node's buffer for processing is transmitted to the sending end node and extra packets will continue to be placed on the network during the measurement and rate information transmission interval.
A recurring and severe problem with window sizing, packet metering and similar systems and protocols, however, is that such systems and methods require accurate information regarding network parameters and careful choice of adaptive parameters to be effective. Many such mechanisms, for example, are statically configured with parameters such as a maximum window size, a start widow growth threshold, ranges for separating rapid window growth from slower window growth, or default packet-metering rates. Networks, however, and in particular networks of any extent and especially connectionless networks such as the Internet are so complex that it is extremely difficult to determine the optimum operating parameters for such mechanisms. The problem is further compounded by variations and changes in network parameters, such as traffic load and the changing conditions through various links or connections of a network.
The above discussed problems of the method and mechanisms of the prior art for the management and operation of networks are further compounded by more recent developments in network technologies and developing applications for networks, such as the transmission of video data.
For example, Internet applications across wireless networks are rapidly becoming common and are carrying rapidly increasing volumes of data traffic of all forms, so that the reliable performance of data communications in mobile environments is becoming a vital issue. The methods and mechanisms of the prior art for managing network data communications, however, are essentially based upon prior wired network models and are often inadequate for new network technologies, such as mobile, wireless networks and may often actual degrade the operation of such networks.
To illustrate, delays and packet losses in a wireless environment are often caused by problems that are not related to network congestion, such as communication pauses during handoffs between wireless cells, packet losses of a mobile node moves out of range of the base stations, and packet losses due to transmission errors on wireless links. A protocol such as TCP/IP, however, may interpret such delays and packet losses as an indication of network congestion. As described above, TCP/IP will respond to packet losses by assuming network congestion, retransmitting the apparent lost packets and initiating congestion control procedures. Such procedures include or may include reduction of the transmission window size, restriction of the window growth rate, and resetting a retransmission timer to a back-off interval that doubles with each consecutive timeout. As a consequence, and even though wireless networks typically contain mechanisms to indicate network changes such as handoffs between cells, such mechanisms often may not respond in time to prevent the initiation of TCP/IP network congestion procedures. TCP/IP will thereby frequently respond inappropriately to a short term wireless network problem that is particular to mobile, wireless networks, thereby degrading the network performance.
It must be noted that wireless networks are subject to still further problems than those resulting from node motion, such as packet losses due to physical transmission errors, incorrect positioning of antennas, ambient noise, multipath interference and other factors. Again, however, and because the network management mechanisms and protocols of the prior art are essentially designed for wired networks, presently existing mechanisms and protocols will frequently respond inappropriately to problems that are particular to wireless networks or other new network technologies.
In addition, the above discussed problems have inhibited and delayed the use of networks for the communication of certain types of data, commonly referred to as multimedia data, and in particular the communication of multimedia data through a telephone type network between computers or from computers to other types of recipients and. Multimedia data is commonly understood and defined as including all forms of data, including packeted data, representing digitized audio and video signals, such as music, voice and animated graphics, that is, “movies”. The goal of much current development effort in these areas is, for example, to allow the use of a computer network to carry telephone type voice communications as well as traditional computer data and to eventually allow the transmission and distribution of, for example, music, “videos” and “movies”.
In this regard, it should be noted that computer data is traditionally regarded as “bursty”, that is, as existing in the form of defined blocks or units and thereby appropriate for transmission through a network in the form of data “packets”. This traditional view or conception of computer data arises, of course, from the inherent structure of digital data in a digital computer into units of one or more bits, bytes and words. The structure of data in a computer, however, arises from the internal physical structure of the data handling components of a computer, that is, the registers, buffers, busses and so on of a digital computer, are physically designed to store data as discrete bits. It should be noted, however, that data may be and often is transmitted through a network as an effectively continuous stream of bits, once a connection is established, as well as in packets.
In contrast, multimedia data, that is, audio and video data, is often regarded or conceived as being inherently “continuous” rather than “bursty”. This view of multimedia data, however, is not entirely correct and to some extent masks the actual problems of communicating multimedia data through networks. For example, the spoken words of voice communications appear to be comprised of discrete units or utterances, that is, syllables or words, while music appears to be comprised of discrete clusters or sequences of notes. The Upon closer consideration, however, it will be realized that audio data, whether voice or music, is a continuous sequence of units of extremely variable size and duration but is effectively a continuous flow of information. The primary distinction between audio data and traditional computer data, therefore, is that traditional computer data is and may be organized and transmitted as discontinuous packets while audio data, whether voice of music, is a continuous data stream. It must be noted, however, that all forms of audio data can be and often are digitized into traditional computer digital data forms, that is, bytes and words, and stored and delivered to a user in the forms of computer data, with perhaps the additional step of a digital to analog conversion. In a like manner, video data of all forms is commonly digitized, stored and delivered to an output device as digital data and, in many instances, is generated and inherently exists in “packeted” form, such as the lines and frames of television signals and the outputs of video drivers in computers. As such, it will be readily apparent that that while audio/video information is inherently continuous in form, audio/video data can be and is readily represented in traditional digital form, that is, as “packets” of digital data, and thus would reasonably thought to be suitable for transmission through networks in the same manner as digital computer data.
A significant distinction between audio/video multimedia data and traditional forms of computer data, and a primary cause of current problems in communicating multimedia data through networks such as telephone network, however, is the sensitivity of multimedia data to “jitter”, which has been defined above as time dependent changes in network latency. That is, traditional forms of computer data that are commonly communicated through networks, including telephone based networks, are commonly either used only after the entire body of data has been received or are otherwise used in a manner wherein the network latency and jitter either are not apparent or are not a problem to the user. As such, the primary considerations in communicating traditional forms of computer data through a network are reliability of transmission and speed of transmission and the traditional forms of computer data are relative indifferent to jitter.
In contrast, the human eye and ear are extremely sensitive to minute shifts or variations in tones and inflections and pauses in audio data, whether, for example, voice of music, and to pauses or variations in rate in the presentation of video data. As a consequence, audio/video multimedia data, and in particular the real time transmission and presentation of audio/video multimedia data, is extremely sensitive to jitter and may be very adversely effected by network latency. As such, the networks and protocols used to communicate multimedia audio and video data must, for example, compensate for or otherwise eliminate the problems resulting from the latencies present in a communication network, including those relating to coding, packet assembly, media access, packet propagation, receiver buffering and decoding, and jitter in any or all of these operations.
In recent years, there have been a number of attempts to produce a digital data network, including telephone networks, capable of communicating multimedia data representing digitized audio and video signals and thereby functioning not only as a computer data network but as a multimedia network and as a telephone network. As discussed above, however, multimedia audio and video signals are extremely time and jitter sensitive and, while present networks and transport protocols are generally adequate for the transmission of traditional forms of computer data, such networks and protocols have proven inadequate for the satisfactory communication of multimedia audio and video data.
In summary, therefore, the methods and mechanisms of the prior art for managing networks and the communication of data through networks contain a number of problems. For example, the methods and mechanisms of the prior art attempt to determine and control traffic conditions within a network or connection by observation of factors that are external to the network or connection and that may be only indirectly related to network conditions, or not related to network conditions at all. For example, observations regarding packet dropping rate or packet retransmission rate at a sending node are only indirectly related to such factors as bandwidth limitations or buffer congestion and may not be at all related to bandwidth limitations or buffer congestionl. The problems inherent in the processes of the prior art are further compounded in that the processes for determining conditions within a network or connection are typically based upon assumptions about conditions within a network or condition that are often invalid. For example, packet dropping rate or packet retransmission rate are assumed to reflect network conditions, such as bandwidth limitations or buffer congestion due to a too high packet transmission rate, but may in fact arise from interference by other traffic or data processing errors or limitations at the receiving node. As a result, the factors observed to determine conditions within a network or connection, the assumptions drawn from these factors and the resulting adaptive processes often have no relationship to actual conditions and problems in a network or connection and often may, in fact, degrade the transmission of data.
Yet other problems of the prior art is that the methods and mechanisms implemented to manage traffic and data transmission in a network or connection may, in fact, conflict with one another or with the basic nature of the data being transmitted or the nature of the connection. For example, the adaptations made by a protocol of one sending end node may compete with and conflict with those made by the protocols of other sending end node. In further example, many of the standard protocols and mechanisms are ill adapted to certain types of data, such as “bursty” data, and the responses of the protocols and mechanisms of the prior art to such data may, in fact, degrade the transmission of such data. In other instances, and for the same reasons, the methods and mechanisms of the prior art often conflict with or do not readily adapt to the inherent characteristics of new network technologies, such as wireless connections, and often degrade or conflict with the transmission of data across such non-traditional types of connections. In yet other instances, the protocols and mechanisms of the prior art do not address the needs of new applications for the transmission of data. For example, the methods and mechanisms of the prior art often operate to maximize data transmission rate or to minimize packet dropping or packet retransmission and may fail to address the jitter problems are significant in audio/video transmission.
The present invention addresses and provides a solution for these and other related problems of the prior art.